package edu.hawaii.duedates.book;

/**
 * This interface is implemented by all books. It defines accessor, mutator, and toString behaviors.
 * 
 * @author Ronn Reeves and Robin E. Raqueno
 */
public interface IBook {

  /**
   * Sets the title of this book.
   * 
   * @param title  The book title.
   */
  public void setTitle(String title);
  /**
   * Returns the title of this book.  
   *
   * @return String  The book title.
   */
  public String getTitle();
  

  /**
   * Sets the due date of this book.
   * 
   * @param  dueDate  The due date of the book.
   */
  public void setDueDate(String dueDate);
  /**
   * Returns the due date for this book.
   *
   * @return Date  The due date for the book.
   */
  public String getDueDate();
  
  
  /**
   * Returns the title of this book.  
   *
   * @return String  The book title.
   */
  public String toString();

  /**
   * Sets the library the book is from.
   * 
   * @param library  The library the book is from.
   */
  public void setLibrary(String library);
  /**
   * Returns the library the book is from.
   * 
   * @return Library  The library the book is from.
   */
  public String getLibrary();
  
  /**
   * put a description here.
   * @param book The book to be compared.
   * @return The sort order compared to this book.
   */
  public int compareByLibrary(Book book);

  /**
   * put a description here.
   * @param book The book to be compared.
   * @return The sort order compared to this book.
   */
  public int compareByDate(Book book);
}